package org.dcma.client;


import org.dcma.client.forms.FrmDatosProceso;
import org.dcma.client.forms.FrmDatosUsuario;
import org.dcma.client.grids.GridProcesos;
import org.dcma.client.grids.GridUsuarios;

import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.Window;
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.layout.FitData;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;



/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Dcmaperu implements EntryPoint {

	final Window window = new Window(); 
	
	@Override
	public void onModuleLoad() {
		generateUI();		
	}

	private void generateUI() {
		
		//Definiendo los elementos de la interfase
		//Main Options
		
		ButtonBar buttonBar=new ButtonBar();
		
		Button btnAddProceso=new Button("Nuevo Proceso");
		Button btnSearchProceso=new Button("Buscar Proceso");
		Button btnSearchUsuario=new Button("Buscar Usuario");
		
		generateWindowProccess();
		
		btnAddProceso.addSelectionListener(new SelectionListener<ButtonEvent>() {
			
			@Override
			public void componentSelected(ButtonEvent ce) {							 			     
			     window.show();			
				   				    				     
			}
		});
		
		buttonBar.add(btnAddProceso);		buttonBar.add(btnSearchProceso);	buttonBar.add(btnSearchUsuario);				
		buttonBar.addStyleName( "x-small-editor x-panel-header x-component x-unselectable");
		RootPanel.get("main_options").add(buttonBar);
		
		//Grid
		GridProcesos gridProcesos=new GridProcesos();		
		RootPanel.get("lista_procesos").add(gridProcesos);
		
		
		//TabPanel
		 TabPanel tbpDatosProceso = new TabPanel();  
	     tbpDatosProceso.setWidth("99%");  
	     tbpDatosProceso.setAutoHeight(true);  
	   
	     TabItem tabDatosProceso = new TabItem("Datos del Proceso");  	     
	     //tabDatosProceso.addText("Aqui iran los datos del Proceso");
	     tabDatosProceso.add(new FrmDatosProceso());
	     tbpDatosProceso.add(tabDatosProceso);  
	     
	     TabItem tabUsuariosProceso = new TabItem("Usuarios");  	     
	     tabUsuariosProceso.add(new GridUsuarios());  
	     tbpDatosProceso.add(tabUsuariosProceso);
	     
	     TabItem tabMateriasProceso = new TabItem("Materias");  	     
	     tabMateriasProceso.addText("Aqui iran las materias ha conciliar");  
	     tbpDatosProceso.add(tabMateriasProceso);
	     
	     RootPanel.get("data_proceso").add(tbpDatosProceso); 
	}

	private void generateWindowProccess() {
		
		Button btnAceptarWindowProcess=new Button("Aceptar");
	     
		 window.setSize(450, 520);
	     window.setPlain(true);  
	     window.setModal(true);  
	     window.setBlinkModal(true);  
	     window.setHeading("Nuevo Proceso Conciliatorio");  
	     window.setLayout(new FitLayout());  
	   
	     TabPanel tbpDatosProcesoForm = new TabPanel();  
	     tbpDatosProcesoForm.setWidth(450);  
	     tbpDatosProcesoForm.setAutoHeight(true);  
	   
	     final TabItem tabDatosProcesoForm = new TabItem("Datos del Proceso");  			     
	     tabDatosProcesoForm.add(new FrmDatosProceso());  
	     tbpDatosProcesoForm.add(tabDatosProcesoForm);  
	     
	     final TabItem tabUsuariosProcesoForm = new TabItem("Usuarios");  			      
	     tabUsuariosProcesoForm.add(new FrmDatosUsuario());  
	     tbpDatosProcesoForm.add(tabUsuariosProcesoForm);
	     
	     final TabItem tabMateriasProcesoForm = new TabItem("Materias");  			     
	     tabMateriasProcesoForm.addText("Aqui iran las materias ha conciliar");  
	     tbpDatosProcesoForm.add(tabMateriasProcesoForm);
	   
	     window.add(tbpDatosProcesoForm, new FitData(4));  
	   
	     window.addButton(btnAceptarWindowProcess);  
	     window.addButton(new Button("Cancelar"));
	     
	     
	     btnAceptarWindowProcess.addSelectionListener(new SelectionListener<ButtonEvent>() {
				
				@Override
				public void componentSelected(ButtonEvent ce) {							 			     				     			
					//ToDo: logica para grabar un nuevo proceso
				}
			});
	}
}

